package com.ktwlsoft.archivemanage.payload.businessInspect;

import com.ktwlsoft.archivemanage.domain.dao.entity.businessInspect.BusinessInspect;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

/**
 * 业务检查模板更新
 *
 * @author zhuhe on 2019/11/6 17:40
 * @version 1.0
 */
@ApiModel("业务检查模板更新")
@Getter
@Setter
public class BusinessSelfOrRepeatInspectUpdateRequest {

    /**主键*/
    @ApiModelProperty("主键")
    @NotNull(message = "主键id不能为空")
    private Long id;

    /**考核模板id**/
    @ApiModelProperty("考核模板id")
    @NotNull(message = "考核模板id不能为空")
    private Long temId;

    /**考核模板名称**/
    @ApiModelProperty("考核模板名称")
    @NotNull(message = "考核模板名称不能为空")
    private String temName;

    /**状态:STAGE(暂存),CANCEL(撤销),COMPLETE(完结)**/
    @ApiModelProperty("状态:STAGE(暂存),CANCEL(撤销),COMPLETE(完结)")
    @NotNull(message = "状态不能为空")
    private BusinessInspect.state state;

    /**指导单号**/
    @ApiModelProperty("指导单号")
    @NotNull(message = "指导单号不能为空")
    private String guidanceNum;

    /**考核地理位置**/
    @ApiModelProperty("考核地理位置")
    private String gpsAddress;

    /**立档单位id**/
    @ApiModelProperty("立档单位id")
    @NotNull(message = "立档单位id不能为空")
    private Long unitId;

    /**立档单位**/
    @ApiModelProperty("立档单位")
    @NotNull(message = "立档单位不能为空")
    private String unitName;

    /**单位位置**/
    @ApiModelProperty("单位位置")
    private String unitAddress;

    /**档案员**/
    @ApiModelProperty("档案员")
    private String archivist;


    /**档案员id**/
    @ApiModelProperty("档案员id")
    @NotNull(message = "档案员id不能为空")
    private Long archivistId;

    /**档案员电话**/
    @ApiModelProperty("档案员电话")
    private String archivistPhone;

    /**满分**/
    @ApiModelProperty("满分")
    private BigDecimal fullMark;

    /**得分**/
    @ApiModelProperty("得分")
    private BigDecimal mark;

    /**自查得分**/
    @ApiModelProperty("自查得分")
    private BigDecimal selfInspectMark;

    /**复查得分**/
    @ApiModelProperty("复查得分")
    private BigDecimal repeatInspectMark;

    /**自查意见**/
    @ApiModelProperty("自查意见(自查意见)")
    private String selfAdvice;

    /**自查签字图片**/
    @ApiModelProperty("自查签字图片(自查意见)")
    private ImgsUpdate selfSignImg;

    /**指导意见(复查意见)**/
    @ApiModelProperty("指导意见(复查意见)")
    private String guidAdvice;

    /**指导员签字图片(复查意见)**/
    @ApiModelProperty("指导员签字图片(复查意见)")
    private ImgsUpdate instructorSignImg;

    /**被指导意见(确认意见)**/
    @ApiModelProperty("被指导意见(确认意见)")
    private String unitAdvice;

    /**被指导单位签字图片(确认意见)**/
    @ApiModelProperty("被指导单位签字图片(确认意见)")
    private ImgsUpdate unitSignImg;

    /**业务检查题目**/
    @ApiModelProperty("业务检查题目")
    @Valid
    @NotNull(message = "业务检查题目不能为空")
    private List<GuidanceSubjectUpdateRequest> subjectSaveRequests;

    /**检查类型:default(默认),self_or_repeat(自查复查)**/
    @ApiModelProperty("检查类型:default(默认),self_or_repeat(自查复查)")
    private String inspectType;

    /**检查人**/
    @ApiModelProperty("检查人")
    @Valid
    private List<BusinessSelfOrRepeatInspectObjectRequest> inspectedBy;

    /**随行人**/
    @ApiModelProperty("随行人")
    @Valid
    private List<BusinessSelfOrRepeatInspectObjectRequest> entourage;

    /**自查印证材料档号**/
    @ApiModelProperty("自查印证材料档号")
    private String selfConfirmMaterialReference;

    /**复查印证材料档号**/
    @ApiModelProperty("复查印证材料档号")
    private String repeatConfirmMaterialReference;
}